// 页面加载优化
$(document).ready(function () {
  try {
    // 确保所有文章默认显示
    $('.post-item').show();
    
    // 移除loading spinner
    $('.page-loading').fadeOut(300, function() {
      $(this).remove();
    });

    // 初始化主题
    initTheme();

    // 立即初始化关键功能
    initCriticalFeatures();

    // 延迟加载非关键功能
    requestAnimationFrame(() => {
      initNonCriticalFeatures();
    });
  } catch (error) {
    console.error('页面初始化出错:', error);
    // 确保loading spinner被移除
    $('.page-loading').remove();
    // 确保所有文章显示
    $('.post-item').show();
  }
});

// 关键功能初始化
function initCriticalFeatures() {
  // 导航菜单交互
  $('.nav-item').hover(
    function () {
      $(this).find('.submenu').stop().fadeIn(200);
    },
    function () {
      $(this).find('.submenu').stop().fadeOut(200);
    },
  );

  // 立即加载可见区域的图片
  lazyLoadImages();

  // 显示文章内容
  $('.blog-post').addClass('visible');
  
  // 初始化文章显示动画
  initPostAnimations();
}

// 初始化文章显示动画
function initPostAnimations() {
  const postObserver = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        entry.target.classList.add('visible');
        postObserver.unobserve(entry.target);
      }
    });
  }, {
    threshold: 0.1
  });

  document.querySelectorAll('.blog-post').forEach(post => {
    postObserver.observe(post);
  });
}

// 非关键功能初始化
function initNonCriticalFeatures() {
  // 初始化评论功能
  initComments();

  // 初始化其他交互功能
  initInteractions();

  // 继续监听图片懒加载
  initLazyLoadObserver();
}

// 延迟加载图片
function lazyLoadImages() {
  document.querySelectorAll('img[data-src]').forEach((img) => {
    // 检查图片是否在视口中
    if (isInViewport(img)) {
      loadImage(img);
    }
  });
}

// 初始化图片懒加载观察器
function initLazyLoadObserver() {
  const imageObserver = new IntersectionObserver((entries, observer) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        loadImage(entry.target);
        observer.unobserve(entry.target);
      }
    });
  });

  document.querySelectorAll('img[data-src]').forEach((img) => {
    if (!img.src || img.src.includes('data:image/gif;base64')) {
      imageObserver.observe(img);
    }
  });
}

// 加载单个图片
function loadImage(img) {
  if (img.dataset.src) {
    img.src = img.dataset.src;
    img.removeAttribute('data-src');
  }
}

// 检查元素是否在视口中
function isInViewport(element) {
  const rect = element.getBoundingClientRect();
  return (
    rect.top >= 0 &&
    rect.left >= 0 &&
    rect.bottom <=
      (window.innerHeight || document.documentElement.clientHeight) &&
    rect.right <= (window.innerWidth || document.documentElement.clientWidth)
  );
}

// 初始化评论功能
function initComments() {
  const commentForm = $('#commentForm');
  const commentList = $('.comment-list');

  if (!commentForm.length) return; // 如果页面没有评论表单，直接返回

  // 从localStorage加载评论
  loadComments();

  // 处理评论提交
  commentForm.on('submit', function (e) {
    e.preventDefault();

    const name = $('#commenterName').val();
    const content = $('#commentContent').val();
    const date = new Date().toLocaleDateString();

    if (!name || !content) return;

    const newComment = { name, content, date };

    // 保存到localStorage
    const savedComments = JSON.parse(localStorage.getItem('comments') || '[]');
    savedComments.unshift(newComment);
    localStorage.setItem('comments', JSON.stringify(savedComments));

    // 添加到页面
    addCommentToList(newComment);

    // 清空表单
    commentForm[0].reset();
  });
}

// 加载评论
function loadComments() {
  const commentList = $('.comment-list');
  if (!commentList.length) return;

  const savedComments = JSON.parse(localStorage.getItem('comments') || '[]');
  savedComments.forEach((comment) => {
    addCommentToList(comment);
  });
}

// 添加评论到列表
function addCommentToList(comment) {
  const commentHtml = `
    <li class="comment-item">
      <img src="https://picsum.photos/50/50?random=${Math.random()}" alt="评论者头像" class="commenter-avatar">
      <div class="comment-content">
        <div class="commenter-name">${comment.name}</div>
        <p>${comment.content}</p>
        <span class="comment-meta">${comment.date}</span>
      </div>
    </li>
  `;
  $('.comment-list').prepend(commentHtml);
}

// 初始化其他交互功能
function initInteractions() {
  // 返回顶部按钮
  const backToTop = $('<button>', {
    class: 'back-to-top',
    html: '↑',
  }).appendTo('body');

  $(window).scroll(function () {
    if ($(this).scrollTop() > 300) {
      backToTop.fadeIn();
    } else {
      backToTop.fadeOut();
    }
  });

  backToTop.click(function () {
    $('html, body').animate(
      {
        scrollTop: 0,
      },
      800,
    );
    return false;
  });

  // 搜索功能
  $('#search-btn').on('click', function () {
    const searchTerm = $('#search-input').val().toLowerCase().trim();
    if (searchTerm === '') {
      // 如果搜索词为空，显示所有文章
      $('.post-item').show();
      return;
    }
    $('.post-item').each(function () {
      const postContent = $(this).text().toLowerCase();
      $(this).toggle(postContent.includes(searchTerm));
    });
  });

  // 搜索框回车事件
  $('#search-input').on('keyup', function (e) {
    if (e.key === 'Enter') {
      $('#search-btn').click();
    }
    // 如果搜索框被清空，显示所有文章
    if ($(this).val() === '') {
      $('.post-item').show();
    }
  });
}

// 主题设置
const themes = {
    light: {
        '--bg-primary': '#f8f9fa',
        '--bg-secondary': '#ffffff',
        '--text-primary': '#2c3e50',
        '--text-secondary': '#34495e',
        '--text-tertiary': '#7f8c8d',
        '--primary-color': '#3498db',
        '--primary-color-dark': '#2980b9',
        '--border-color': '#e1e4e8',
        '--card-shadow': '0 2px 12px rgba(0, 0, 0, 0.1)',
        '--header-gradient': 'linear-gradient(135deg, #3498db, #2980b9)'
    },
    dark: {
        '--bg-primary': '#1a1b1e',
        '--bg-secondary': '#2d2d2d',
        '--text-primary': '#ffffff',
        '--text-secondary': '#ecf0f1',
        '--text-tertiary': '#bdc3c7',
        '--primary-color': '#3498db',
        '--primary-color-dark': '#2980b9',
        '--border-color': '#34495e',
        '--card-shadow': '0 2px 12px rgba(0, 0, 0, 0.2)',
        '--header-gradient': 'linear-gradient(135deg, #2c3e50, #2980b9)'
    }
};

// 初始化主题
const initTheme = () => {
    const savedTheme = localStorage.getItem('theme') || 'light';
    setTheme(savedTheme);
};

// 设置主题
const setTheme = (theme) => {
    const root = document.documentElement;
    const themeColors = themes[theme];
    
    Object.entries(themeColors).forEach(([property, value]) => {
        root.style.setProperty(property, value);
    });
    
    document.body.setAttribute('data-theme', theme);
    localStorage.setItem('theme', theme);
    
    // 更新主题切换按钮的状态
    const themeToggle = document.getElementById('theme-toggle');
    if (themeToggle) {
        themeToggle.setAttribute('data-theme', theme);
    }
};

// 切换主题
const toggleTheme = () => {
    const currentTheme = localStorage.getItem('theme') || 'light';
    const newTheme = currentTheme === 'light' ? 'dark' : 'light';
    setTheme(newTheme);
};

// 初始化页面
document.addEventListener('DOMContentLoaded', () => {
    try {
        // 初始化主题
        initTheme();
        
        // 绑定主题切换事件
        const themeToggle = document.getElementById('theme-toggle');
        if (themeToggle) {
            themeToggle.addEventListener('click', toggleTheme);
        }

        // 移除loading spinner
        const loadingSpinner = document.querySelector('.page-loading');
        if (loadingSpinner) {
            loadingSpinner.classList.add('loaded');
            setTimeout(() => loadingSpinner.remove(), 300);
        }

        // 显示文章内容
        document.querySelectorAll('.blog-post').forEach(post => {
            post.classList.add('visible');
        });

        // 初始化文章显示动画
        const postObserver = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.classList.add('visible');
                    postObserver.unobserve(entry.target);
                }
            });
        }, {
            threshold: 0.1
        });

        document.querySelectorAll('.article-card').forEach(post => {
            postObserver.observe(post);
        });

    } catch (error) {
        console.error('页面初始化出错:', error);
        // 确保loading spinner被移除
        const loadingSpinner = document.querySelector('.page-loading');
        if (loadingSpinner) {
            loadingSpinner.remove();
        }
    }
});

// ... 其他必要的功能代码 ...
